package main

import (
	"fmt"

	"github.com/garyburd/redigo/redis"
)

/*
1、批量Set/Get数据
说明：通过go对redis操作，一次操作可以Set/Get多个key-val数据
2、给数据设置有效时间
说明：通过go对Redis操作，给key-value设置有效时间
*/
func main() {
	conn, err := redis.Dial("tcp", "localhost:6379")
	if err != nil {
		fmt.Println(err)
		return
	}
	_, err = conn.Do("hset", "user01", "age", 18)
	if err != nil {
		fmt.Println("set err=", err)
		return
	}
	r, err := redis.Int(conn.Do("hget", "user01", "age"))
	if err != nil {
		fmt.Println("get err=", err)
		return
	}
	fmt.Println(r)

	//批量添加
	_, err = conn.Do("hmset", "user02", "name", "john", "age", 19)
	if err != nil {
		fmt.Println("hmset err=", err)
		return
	}
	r1, err := redis.Strings(conn.Do("hmget", "user02", "name", "age"))
	if err != nil {
		fmt.Println("hmget err=", err)
	}
	fmt.Printf("%T\n", r1)
	for i, v := range r1 {
		fmt.Printf("r[%d]=%s\n", i, v)
	}

	//设置有效时间
	_, err = conn.Do("expire", "name", 10)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer conn.Close()
}
